class Administrator < ActiveRecord::Base

  #Validacion para que los campos requeridos no sean nulos
  validates_presence_of :name
  validates_presence_of :lastName
  validates_presence_of :login
  validates_presence_of :ci

  #Validacion para que exista un limite para la entrada de datos
   validates_length_of :name, :maximum=>20, :message=>"Max lenght it's %d characters"
   validates_length_of :lastName, :maximum=>20, :message=>"Max lenght it's %d characters"
   validates_length_of :ci, :maximum=>10, :message=>"Max lenght it's %d Digits"

  #Manera en como se valida para que sea valido el correo
  validates_format_of :login, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on  => :create

  #Valida que no se puedan incluir letras en el campo
  validates_numericality_of :ci,:greater_than => 0


  #Con esta funcion se cambia los nombres de los atributos que salen por defauyt
  #en el cuadro de errores que trae ruby
  HUMAN_ATTRIBUTES = {
    :name    => "Name",
    :lastName => "Last Name",
    :login => "Mail Addres",
    :ci => "Identification Number"

  }

  def self.human_attribute_name(attr)
    HUMAN_ATTRIBUTES[attr.to_sym] || super
  end



  #Se realiza un tipo de validacion para que el login(correo) sea unico
  #y no este repetido
  validates_uniqueness_of :login

  #Relaciones con respecto a la cardinalidad de las tablas con respecto a la
  #de datos.
  has_many:categories
  has_many :machines
  has_many:events
end
